The present invention relates to computer software utility programs, and more specifically to programs in the field of computer aided design (CAD), computer aided manufacturing (CAM), computer aided engineering (CAE) and program data management software systems.
In such systems features or objects that are the subject of a design process can be manipulated by the operator in various ways as specified by the applications software. Typically, such manipulations are known as events. For example, in a CAD/CAM system, a user may wish to place a certain object or feature, for example, a hole, in an object being designed on the system, such object typically being graphically displayed on a video display. The system application code provides that the user can cause certain events to occur with respect to the feature or object. For example, the user may cause a xe2x80x9cdrag and dropxe2x80x9d event to occur with respect to the hole, the effect of which is to place a copy of the hole in another location. In a known system, the user would place a cursor on the hole, click a button on a mouse, and then drag the hole onto an object into which the user wishes to place a hole by moving the cursor. The data structure of the feature contains code dictating the behavior of the hole when it is dropped onto an object. For example, the code for the feature would specify that the hole should assume a length commensurate with the width of the part onto which the hole was placed. In this manner, the selected feature will behave in a manner dictated by the previously written and compiled system application code when certain user-selected events occur on the feature.
It has been found to be extremely useful to attach knowledge or additional behavioral characteristics to a particular selected feature being created or manipulated in the course of running an application, such that the particular selected feature or object will exhibit a specific additional behavior in defined circumstances or upon occurrence of a defined event or action requested by the user. The additional behavioral characteristics are expressed as a piece of software code, for example a script or other interpreted language, which are interpreted by the system when the specified event occurs with respect to the identified object or feature, causing the object or feature to behave as defined by the script.
In known systems, to attach knowledge or behavior to an object a user must exit the application program, write program code adding behavior for the particular selected object, and compile and link the resulting program before restarting the application in which he was working. This is a cumbersome and time-consuming process, which interrupts the user""s design process. In addition, many users would not be comfortable with the process if they lack the necessary programming skills for modifying the applications software. Also, the user would need to have access to the code for the application he is using.
It is also known to write code for additional behavior in macros, which the user may specify each time the user causes an event to occur. However, the use of macros is cumbersome and inadequate since the user must specify the context of an event each time the macro is run. Thus, while macros allow for the customization of the whole application, they do not allow the addition of behavior to one specific feature.
There is therefore a need for an easy-to-use system which can allow a user to add knowledge or behavioral characteristics to a feature such that the additional behavior needs to be specified for a particular feature only once. In addition, there is a need for a system which allows a user to specify additional behavior for a feature without having to leave the application, so that the additional behavior is exhibited immediately with respect to the selected feature and event.
Accordingly, the present invention provides a system, method and apparatus for allowing a user, without leaving the application in which he is working, to prepare code describing the behavior or other knowledge-based characteristic a specific object or feature should exhibit each time a specific event becomes associated with the object during the course of running the application. The user may prepare the code at the time he creates the object or at any later time upon selecting an already existing object.
Generally, in one aspect of the invention, the additional behavior will be permanently associated with the object, and if copies of the object are made, the additional knowledge and behavior will also be copied, so that the copied object is identical to the initial behaviorally modified object.
In another aspect of the invention, the user can create a behavior for an object by selecting a behavior creation icon or symbol displayed on the screen after selecting an object. Upon selection of the icon, a dialogue box is displayed in which the behavioral code or script can be written. Following completion of the writing of the code, the user may exit the dialogue box, whereupon the application stores the object, event, and behavioral code in a behavior data structure. As indicated, the new behavior is immediately associated with the object, and design work can continue without interruption.